package com.itheima.reggie.mapper;

import com.itheima.reggie.dto.DishDto;
import com.itheima.reggie.entity.Dish;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Author: qingtao
 * @Date 2022/3/10 12:09
 */
public interface DishMapper {
    /**
     * 查询菜品表关联菜品
     * @param id
     * @return
     */
    @Select("select COUNT(*) from dish where category_id=#{id} and is_deleted=0")
    Long findDishCountByCategoryId(Long id);

    /**
     * 添加
     * @param dishDto
     * @return
     */
    Integer save(DishDto dishDto);

    /**
     * 查询1(模糊)（多表）
     * @param name
     * @return
     */
    List<Dish> findAllByName1(String name);

    /**
     * 查询2(模糊)（连表）
     * @param name
     * @return
     */
    List<DishDto> findAllByName2(String name);

    /**
     * 根据name查询(具体)
     * @param name
     * @return
     */
    @Select("select * from dish where name=#{name}")
    Dish findByName(String name);

    /**
     * 根据id查找
     * @param id
     * @return
     */
    @Select("select * from dish where id=#{id}")
    Dish findById(Long id);
    /**
     * 修改
     * @param dishDto
     * @return
     */
    Integer update(DishDto dishDto);

    /**
     * 改状态（停售和启售）
     * @param status
     * @param ids
     * @return
     */
    Integer updateStatus(@Param("status")Integer status,@Param("ids") Long[] ids);

    /**
     * 根据分类名查询菜品
     * @param categoryId
     * @return
     */
    @Select("select * from dish where category_id=#{categoryId} and status=#{status} ")
    List<Dish> findByCategoryId(@Param("categoryId") Long categoryId,@Param("status") Integer status);

}
